package com.platform.usercenter.service;

import java.util.List;
import com.platform.usercenter.domain.SysUserDept;
import com.platform.usercenter.domain.query.SysUserDeptQuery;
import com.platform.usercenter.domain.vo.UserDeptVo;

/**
 * 用户与部门关联Service接口
 *
 * @author platform
 * @date 2023-03-30
 */
public interface ISysUserDeptService
{
    /**
     * 查询用户与部门关联
     *
     * @param userId 用户与部门关联主键
     * @return 用户与部门关联
     */
    public List<SysUserDept> selectSysUserDeptByUserId(Long userId);

    /**
     * 查询用户与部门关联列表
     *
     * @param query 用户与部门关联
     * @return 用户与部门关联集合
     */
    public List<SysUserDept> selectSysUserDeptList(SysUserDeptQuery query);

    /**
     * 新增用户与部门关联
     *
     * @param sysUserDept 用户与部门关联
     * @return 结果
     */
    public int insertSysUserDept(SysUserDept sysUserDept);

    /**
     * 修改用户与部门关联
     *
     * @param sysUserDept 用户与部门关联
     * @return 结果
     */
    public int updateSysUserDept(SysUserDept sysUserDept);

    /**
     * 批量删除用户与部门关联
     *
     * @param userIds 需要删除的用户与部门关联主键集合
     * @return 结果
     */
    public int deleteSysUserDeptByUserIds(Long[] userIds);

    /**
     * 删除用户与部门关联信息
     *
     * @param userId 用户与部门关联主键
     * @return 结果
     */
    public int deleteSysUserDeptByUserId(Long userId);

    /***
     *  查询 用户 与组织关联信息
     * @param userId 用户id
     * @return
     */
    public List<UserDeptVo> selectUserDeptVoList(Long userId,Long optUserId,Long loginDeptId);

    public List<SysUserDept> selectSysUserDeptListByIdCard(String idCard);

}
